Gtkmm

Gtkmm est un framework C++ permettant la création d'interface graphiques. Il s'agit d'une surcouche à GTK+ qui permet aux programmeurs c++ d'utiliser GTK+ par le biais de classes, et ainsi de profiter de tous les avantages du c++ (dérivation…).

Installation

Pour installer les librairies de développement de gtkmm, il faut installer le paquet libgtkmm-2.4-dev .

Si vous le désirez vous pouvez installer la documentation (en anglais) en installant libgtkmm-2.4-doc. Pour la lire, vous pouvez utiliser le programme devhelp, ou simplement votre navigateur web préféré en vous rendant à l'adresse file:///usr/share/doc/libgtkmm-2.4-doc/docs/index.html

Compilation

Avec g++

Pour compiler, vous devrez linker le projet en utilisant l'utilitaire pkg-config comme ci-dessous:

g++ fichier.cpp -o executable `pkg-config gtkmm-2.4 --cflags --libs`  

Avec l'IDE codeblocks

Pour compiler sous Codeblocks, il vous suffit également de linker le projet, toujours en utilisant l'utilitaire pkg-config de la manière suivante :

`pkg-config --cflags gtkmm-2.4`
`pkg-config --libs gtkmm-2.4`
#include <iostream>
#include <gtkmm-2.4/gtkmm.h>

int main(int argc, char *argv[])
{
    Gtk::Main kit(argc, argv);
    return 0;
}

Bien sûr, cette démarche doit être adaptée à la version de gtkmm que vous utilisez. Les lignes ci-dessus ont été écrite pour le paquet gtkmm-2.4. Mais si vous avez installé le paquet gtkmm-3.0, elles doivent être naturellement adaptées de la façon suivante :

`pkg-config --cflags gtkmm-3.0`
`pkg-config --libs gtkmm-3.0`
#include <gtkmm.h>

int main(int argc, char *argv[])
{
    Gtk::Main kit(argc, argv);
    Gtk::Window window;
    kit.run(window);
    return 0;
}

Il peut être intéressant, surtout si l'on débute en C++, de compléter l'installation de Codeblocks en installant des exemples de programmes. On peut trouver de nombreux exemples sur le site http://git.gnome.org/browse/gtkmm-documentation/tree/examples/book ou encore dans les tutoriels proposés sur le site : http://developer.gnome.org/gtkmm-tutorial. Comme on peut le voir sur les forums, il arrive souvent que ds tentatives d'utilisation de ces exemples se soldent par des erreurs à la compilation ! Ceci est du fait que la version de gtkmm utilisée pour les mettre au point est différente de celle que vous venez d'installer sur votre ordinateur. Deux raisons peuvent induire en erreur : - la première est que le numéro de version gtkmm n'est pas forcément le même que le numéro de version des paquets gtkmm de Debian et Ubuntu !! En particulier, la version gtkmm 3.2 est livrée dans le paquet libgtkmm-3.0-dev de Ubuntu.(cf. http://developer.gnome.org/gtkmm-tutorial/unstable/sec-install-unix-and-linux.html.fr#sec-linux-install-from-packages ) - la deuxième raison est que le numéro de la version de gtkmm qui correspond à ces programmes n'est pas inscrite dans les commentaires du code de ces programmes. Une fois ces programmes récupérés, si vous n'avez pas fait attention au numéro de version au moment où vous les avez récupérés, vous n'avez plus de moyens pour le retrouver.

Voici quelques conseils pour vous aider à récupérer la bonne version du code de ces programmes exemples. Nous supposons que vous avez installé gtkmm à partir du paquet synaptic libgtkmm-3.0-dev d'Ubuntu et donc vous avez sur votre ordinateur la version 3.2 de gtkmm. Notre objectif est donc d'obtenir la version 3.2 des programmes exemples. Ces programmes sont stockés sur le site

Une fois les source des programmes exemple récupérés :

Avec CMake

Cmake est un programme permettant de simplifier la compilation en générant des makefiles. Pour utiliser gtkmm avec cmake, il faut procéder ainsi :

project(nom_du_projet)
cmake_minimum_required(VERSION 2.6)

find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-2.4 )

link_directories(
    ${GTKMM_LIBRARY_DIRS} )

include_directories(
${GTKMM_INCLUDE_DIRS} )  

set (SRC
main.cpp
#Vos sources
)

add_executable(executable 
    ${SRC} )

target_link_libraries(executable 
    ${GTKMM_LIBRARIES} )

CMake utilisera pkg-config pour trouver la librairie, ce code ne permet donc pas de compiler un programme gtkmm de façon portable.

Liens utiles

La documentation officielle (en anglais)

Le livre en ligne "Programming with gtkmm" (aussi disponible en html)

Tutoriel en français sur "Le Site du Zéro"


Contributeurs : Geenux, bsaleil